<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libslic3r: src/libslic3r/GCode.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="Slic3r_192px_transparent.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">libslic3r
   </div>
   <div id="projectbrief">Library for generating gcode from 3d models</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_f69e6fbaea45487e96bc9ed8ccf9ff8f.html">libslic3r</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">GCode.hpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_g_code_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef slic3r_GCode_hpp_</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define slic3r_GCode_hpp_</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="libslic3r_8h.html">libslic3r.h</a>&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ex_polygon_8hpp.html">ExPolygon.hpp</a>&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_g_code_writer_8hpp.html">GCodeWriter.hpp</a>&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_layer_8hpp.html">Layer.hpp</a>&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_motion_planner_8hpp.html">MotionPlanner.hpp</a>&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_point_8hpp.html">Point.hpp</a>&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_placeholder_parser_8hpp.html">PlaceholderParser.hpp</a>&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_print_8hpp.html">Print.hpp</a>&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_print_config_8hpp.html">PrintConfig.hpp</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_conditional_g_code_8hpp.html">ConditionalGCode.hpp</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_slic3r.html">Slic3r</a> {</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keyword">class </span><a class="code" href="class_slic3r_1_1_g_code.html">GCode</a>;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_avoid_crossing_perimeters.html">   20</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_slic3r_1_1_avoid_crossing_perimeters.html">AvoidCrossingPerimeters</a> {</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    </div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    <span class="comment">// this flag triggers the use of the external configuration space</span></div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_avoid_crossing_perimeters.html#a9af0237a92c8d3a6c5157bd504d34497">   24</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_slic3r_1_1_avoid_crossing_perimeters.html#a9af0237a92c8d3a6c5157bd504d34497">use_external_mp</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_avoid_crossing_perimeters.html#a32df5a3f8a02746d20502b4a0c2af7e4">   25</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_slic3r_1_1_avoid_crossing_perimeters.html#a32df5a3f8a02746d20502b4a0c2af7e4">use_external_mp_once</a>;  <span class="comment">// just for the next travel move</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    </div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="comment">// this flag disables avoid_crossing_perimeters just for the next travel move</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="comment">// we enable it by default for the first travel move in print</span></div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_avoid_crossing_perimeters.html#a29d2d50489f5ef828153cc4b5d44db44">   29</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_slic3r_1_1_avoid_crossing_perimeters.html#a29d2d50489f5ef828153cc4b5d44db44">disable_once</a>;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    </div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <a class="code" href="class_slic3r_1_1_avoid_crossing_perimeters.html#aae6eb53ded72ab562f950e1455b6b4df">AvoidCrossingPerimeters</a>();</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <a class="code" href="class_slic3r_1_1_avoid_crossing_perimeters.html#a21e0cf13c50be57b92f20e743c21a117">~AvoidCrossingPerimeters</a>();</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_avoid_crossing_perimeters.html#a3ab0d13fe0db59cebfd8c472c9a11849">init_external_mp</a>(<span class="keyword">const</span> <a class="code" href="namespace_slic3r.html#a9306b728b4672f5e56abe05ba7437fe1">ExPolygons</a> &amp;islands);</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_avoid_crossing_perimeters.html#a636ab22e5653d616788c911801d2ad02">init_layer_mp</a>(<span class="keyword">const</span> <a class="code" href="namespace_slic3r.html#a9306b728b4672f5e56abe05ba7437fe1">ExPolygons</a> &amp;islands);</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <a class="code" href="class_slic3r_1_1_polyline.html">Polyline</a> <a class="code" href="class_slic3r_1_1_avoid_crossing_perimeters.html#a111144cd384870ba18ddb396051f6869">travel_to</a>(<a class="code" href="class_slic3r_1_1_g_code.html">GCode</a> &amp;gcodegen, <a class="code" href="class_slic3r_1_1_point.html">Point</a> point);</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    </div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="keyword">private</span>:</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <a class="code" href="class_slic3r_1_1_motion_planner.html">MotionPlanner</a>* _external_mp;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <a class="code" href="class_slic3r_1_1_motion_planner.html">MotionPlanner</a>* _layer_mp;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;};</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_ooze_prevention.html">   42</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_slic3r_1_1_ooze_prevention.html">OozePrevention</a> {</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_ooze_prevention.html#a40d572670fe5cf3db04d6ae40e00f895">   44</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_slic3r_1_1_ooze_prevention.html#a40d572670fe5cf3db04d6ae40e00f895">enable</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_ooze_prevention.html#a4f3f0a611e9802086eb150175abdc1e4">   45</a></span>&#160;    <a class="code" href="namespace_slic3r.html#a47d04f71423ecef9ad36e18046f11c3c">Points</a> <a class="code" href="class_slic3r_1_1_ooze_prevention.html#a4f3f0a611e9802086eb150175abdc1e4">standby_points</a>;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    </div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <a class="code" href="class_slic3r_1_1_ooze_prevention.html#a79b535f6ead3e9fd282df31c22d4d4ef">OozePrevention</a>();</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    std::string <a class="code" href="class_slic3r_1_1_ooze_prevention.html#a3f2c74faf1106ebae4f64d71843b964e">pre_toolchange</a>(<a class="code" href="class_slic3r_1_1_g_code.html">GCode</a> &amp;gcodegen);</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    std::string <a class="code" href="class_slic3r_1_1_ooze_prevention.html#a106488f9b4c6a1e0eb46d9fbcbd1f8fe">post_toolchange</a>(<a class="code" href="class_slic3r_1_1_g_code.html">GCode</a> &amp;gcodegen);</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    </div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keyword">private</span>:</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keywordtype">int</span> _get_temp(<a class="code" href="class_slic3r_1_1_g_code.html">GCode</a> &amp;gcodegen);</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;};</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_wipe.html">   55</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_slic3r_1_1_wipe.html">Wipe</a> {</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_wipe.html#a8f352a04cdfc7195f33a6011714bce5c">   57</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_slic3r_1_1_wipe.html#a8f352a04cdfc7195f33a6011714bce5c">enable</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_wipe.html#ad658cc53ba64891fe7bf86379fe39ad0">   58</a></span>&#160;    <a class="code" href="class_slic3r_1_1_polyline.html">Polyline</a> <a class="code" href="class_slic3r_1_1_wipe.html#ad658cc53ba64891fe7bf86379fe39ad0">path</a>;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    </div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <a class="code" href="class_slic3r_1_1_wipe.html#ad57e8a23d91be0206b769dbc6dbcd0c3">Wipe</a>();</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_slic3r_1_1_wipe.html#ae37b8485de56d82025cba2ed0184d812">has_path</a>();</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_wipe.html#ab6fa990d3bab203e80fe6ce3ec5879bd">reset_path</a>();</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    std::string <a class="code" href="class_slic3r_1_1_wipe.html#acdaf60fce7be3246da78d42ca1f79c1b">wipe</a>(<a class="code" href="class_slic3r_1_1_g_code.html">GCode</a> &amp;gcodegen, <span class="keywordtype">bool</span> toolchange = <span class="keyword">false</span>);</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;};</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html">   66</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_slic3r_1_1_g_code.html">GCode</a> {</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    </div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="comment">/* Origin of print coordinates expressed in unscaled G-code coordinates.</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">       This affects the input arguments supplied to the extrude*() and travel_to()</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="comment">       methods. */</span></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#a462b84d1b9328a0c82b4d78e172f58b3">   72</a></span>&#160;    <a class="code" href="class_slic3r_1_1_pointf.html">Pointf</a> <a class="code" href="class_slic3r_1_1_g_code.html#a462b84d1b9328a0c82b4d78e172f58b3">origin</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#ac1925c875268f63d09539522597f40df">   73</a></span>&#160;    <a class="code" href="class_slic3r_1_1_full_print_config.html">FullPrintConfig</a> <a class="code" href="class_slic3r_1_1_g_code.html#ac1925c875268f63d09539522597f40df">config</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#aa3619757603587fd8a2f0dcd149b3096">   74</a></span>&#160;    <a class="code" href="class_slic3r_1_1_g_code_writer.html">GCodeWriter</a> <a class="code" href="class_slic3r_1_1_g_code.html#aa3619757603587fd8a2f0dcd149b3096">writer</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#a40b702906e2fccb73cc52aa8e6dcd891">   75</a></span>&#160;    <a class="code" href="class_slic3r_1_1_placeholder_parser.html">PlaceholderParser</a>* <a class="code" href="class_slic3r_1_1_g_code.html#a40b702906e2fccb73cc52aa8e6dcd891">placeholder_parser</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#a59154e1e37769a3464a1adbeb608d4f3">   76</a></span>&#160;    <a class="code" href="class_slic3r_1_1_ooze_prevention.html">OozePrevention</a> <a class="code" href="class_slic3r_1_1_g_code.html#a59154e1e37769a3464a1adbeb608d4f3">ooze_prevention</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#a0fcedd010d0c299f998676307831fa82">   77</a></span>&#160;    <a class="code" href="class_slic3r_1_1_wipe.html">Wipe</a> <a class="code" href="class_slic3r_1_1_g_code.html#a0fcedd010d0c299f998676307831fa82">wipe</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#a2d9d2aea86ee78ee915b041aebb16873">   78</a></span>&#160;    <a class="code" href="class_slic3r_1_1_avoid_crossing_perimeters.html">AvoidCrossingPerimeters</a> <a class="code" href="class_slic3r_1_1_g_code.html#a2d9d2aea86ee78ee915b041aebb16873">avoid_crossing_perimeters</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#a610cf4c32f3a137d0f743a79d5d41b39">   79</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_slic3r_1_1_g_code.html#a610cf4c32f3a137d0f743a79d5d41b39">enable_loop_clipping</a>;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="comment">// If enabled, the G-code generator will put following comments at the ends</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="comment">// of the G-code lines: _EXTRUDE_SET_SPEED, _WIPE, _BRIDGE_FAN_START, _BRIDGE_FAN_END</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="comment">// Those comments are received and consumed (removed from the G-code) by the CoolingBuffer.pm Perl module.</span></div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#acdfaae6f1d3709164683e08e769affc9">   83</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_slic3r_1_1_g_code.html#acdfaae6f1d3709164683e08e769affc9">enable_cooling_markers</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#adf05ed87c16a522173798c742ef781df">   84</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="class_slic3r_1_1_g_code.html#adf05ed87c16a522173798c742ef781df">layer_count</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#a9bf8828474cbaaa40c5d4dccd860606d">   85</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="class_slic3r_1_1_g_code.html#a9bf8828474cbaaa40c5d4dccd860606d">layer_index</a>; <span class="comment">// just a counter</span></div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#a5c60b4abc38e3d636529eb67fc013325">   86</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="class_slic3r_1_1_layer.html">Layer</a>* <a class="code" href="class_slic3r_1_1_g_code.html#a5c60b4abc38e3d636529eb67fc013325">layer</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#a82f735d3f7bdcfc9b204682ba7515fb0">   87</a></span>&#160;    std::map&lt;const PrintObject*,Point&gt; <a class="code" href="class_slic3r_1_1_g_code.html#a82f735d3f7bdcfc9b204682ba7515fb0">_seam_position</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#a4dc0c32804979594c8b5aec8aca71390">   88</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_slic3r_1_1_g_code.html#a4dc0c32804979594c8b5aec8aca71390">first_layer</a>; <span class="comment">// this flag triggers first layer speeds</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="comment">// Used by the CoolingBuffer.pm Perl module to calculate time spent per layer change.</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="comment">// This value is not quite precise. First it only accouts for extrusion moves and travel moves,</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="comment">// it does not account for wipe, retract / unretract moves.</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="comment">// second it does not account for the velocity profiles of the printer.</span></div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#a4b5096c85157ddd8fb64bc185e604c25">   93</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_slic3r_1_1_g_code.html#a0d0378375a194221c311571a41e46870">elapsed_time</a>, <a class="code" href="class_slic3r_1_1_g_code.html#a34e30b153af18e9f914e8460de6a1d4b">elapsed_time_bridges</a>, <a class="code" href="class_slic3r_1_1_g_code.html#a4b5096c85157ddd8fb64bc185e604c25">elapsed_time_external</a>; <span class="comment">// seconds</span></div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_g_code.html#a27c12f0a1e9cb85f20ecaee1b45e0af4">   94</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="class_slic3r_1_1_g_code.html#a27c12f0a1e9cb85f20ecaee1b45e0af4">volumetric_speed</a>;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    </div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <a class="code" href="class_slic3r_1_1_g_code.html#a95595025dcf23ca2d62043972749f987">GCode</a>();</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keyword">const</span> <a class="code" href="class_slic3r_1_1_point.html">Point</a>&amp; <a class="code" href="class_slic3r_1_1_g_code.html#a935d5bd6724a00bd0de46fbedb581786">last_pos</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_g_code.html#a2690c7ccdb7cacc74b2ec148fafb8427">set_last_pos</a>(<span class="keyword">const</span> <a class="code" href="class_slic3r_1_1_point.html">Point</a> &amp;pos);</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_slic3r_1_1_g_code.html#a105b1e6249c8328f8e12b70d8ac983cb">last_pos_defined</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_g_code.html#a7b877f79ab3624962b83514ec57c5e6d">apply_print_config</a>(<span class="keyword">const</span> <a class="code" href="class_slic3r_1_1_print_config.html">PrintConfig</a> &amp;print_config);</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_g_code.html#ac6320878ee4fff4ad7f30400b2bf8da9">set_extruders</a>(<span class="keyword">const</span> std::vector&lt;unsigned int&gt; &amp;extruder_ids);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_g_code.html#a54c7532f9680917488cd57ff561450a4">set_origin</a>(<span class="keyword">const</span> <a class="code" href="class_slic3r_1_1_pointf.html">Pointf</a> &amp;pointf);</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    std::string <a class="code" href="class_slic3r_1_1_g_code.html#a1b9cd040ce1ef5fbc7d0ff2676b3fb50">preamble</a>();</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    std::string <a class="code" href="class_slic3r_1_1_g_code.html#ab74d63ffcfae0ebc79d40b3b1c544317">notes</a>();</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    std::string <a class="code" href="class_slic3r_1_1_g_code.html#adc045ff508fb178dc201b9814ba4cbd2">change_layer</a>(<span class="keyword">const</span> <a class="code" href="class_slic3r_1_1_layer.html">Layer</a> &amp;layer);</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    std::string <a class="code" href="class_slic3r_1_1_g_code.html#ad284e05329759e43235cc007e99034b5">extrude</a>(<span class="keyword">const</span> <a class="code" href="class_slic3r_1_1_extrusion_entity.html">ExtrusionEntity</a> &amp;entity, std::string description = <span class="stringliteral">&quot;&quot;</span>, <span class="keywordtype">double</span> speed = -1);</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    std::string <a class="code" href="class_slic3r_1_1_g_code.html#ad284e05329759e43235cc007e99034b5">extrude</a>(<a class="code" href="class_slic3r_1_1_extrusion_loop.html">ExtrusionLoop</a> loop, std::string description = <span class="stringliteral">&quot;&quot;</span>, <span class="keywordtype">double</span> speed = -1);</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    std::string <a class="code" href="class_slic3r_1_1_g_code.html#ad284e05329759e43235cc007e99034b5">extrude</a>(<span class="keyword">const</span> <a class="code" href="class_slic3r_1_1_extrusion_path.html">ExtrusionPath</a> &amp;path, std::string description = <span class="stringliteral">&quot;&quot;</span>, <span class="keywordtype">double</span> speed = -1);</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    std::string <a class="code" href="class_slic3r_1_1_g_code.html#a6d246cfdea1c2e9be90f89b59e015ce3">travel_to</a>(<span class="keyword">const</span> <a class="code" href="class_slic3r_1_1_point.html">Point</a> &amp;point, <a class="code" href="namespace_slic3r.html#aa0fe88d48b85b2859e710c114c5b76cc">ExtrusionRole</a> role, std::string comment);</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_slic3r_1_1_g_code.html#a98cad943333b72e34f11a28740ff7b8f">needs_retraction</a>(<span class="keyword">const</span> <a class="code" href="class_slic3r_1_1_polyline.html">Polyline</a> &amp;travel, <a class="code" href="namespace_slic3r.html#aa0fe88d48b85b2859e710c114c5b76cc">ExtrusionRole</a> role = <a class="code" href="namespace_slic3r.html#aa0fe88d48b85b2859e710c114c5b76ccad57ae907335d1f0f6b915b0b00fdc49c">erNone</a>);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    std::string <a class="code" href="class_slic3r_1_1_g_code.html#abf0b5c44d36ce28cc169004804144961">retract</a>(<span class="keywordtype">bool</span> toolchange = <span class="keyword">false</span>);</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    std::string <a class="code" href="class_slic3r_1_1_g_code.html#af816f73f41514944c38bf6b59406b73f">unretract</a>();</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    std::string <a class="code" href="class_slic3r_1_1_g_code.html#a7b5ce6b6d3de98eb348edb8d144a2320">set_extruder</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> extruder_id);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <a class="code" href="class_slic3r_1_1_pointf.html">Pointf</a> <a class="code" href="class_slic3r_1_1_g_code.html#aa3b3a2d84b5f0576bceb6c83c0370220">point_to_gcode</a>(<span class="keyword">const</span> <a class="code" href="class_slic3r_1_1_point.html">Point</a> &amp;point);</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    </div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keyword">private</span>:</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <a class="code" href="class_slic3r_1_1_point.html">Point</a> _last_pos;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keywordtype">bool</span> _last_pos_defined;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    std::string _extrude(<a class="code" href="class_slic3r_1_1_extrusion_path.html">ExtrusionPath</a> path, std::string description = <span class="stringliteral">&quot;&quot;</span>, <span class="keywordtype">double</span> speed = -1);</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;};</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;}</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="class_slic3r_1_1_avoid_crossing_perimeters_html_a3ab0d13fe0db59cebfd8c472c9a11849"><div class="ttname"><a href="class_slic3r_1_1_avoid_crossing_perimeters.html#a3ab0d13fe0db59cebfd8c472c9a11849">Slic3r::AvoidCrossingPerimeters::init_external_mp</a></div><div class="ttdeci">void init_external_mp(const ExPolygons &amp;islands)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:27</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_writer_html"><div class="ttname"><a href="class_slic3r_1_1_g_code_writer.html">Slic3r::GCodeWriter</a></div><div class="ttdef"><b>Definition:</b> GCodeWriter.hpp:12</div></div>
<div class="ttc" id="class_slic3r_1_1_extrusion_loop_html"><div class="ttname"><a href="class_slic3r_1_1_extrusion_loop.html">Slic3r::ExtrusionLoop</a></div><div class="ttdef"><b>Definition:</b> ExtrusionEntity.hpp:119</div></div>
<div class="ttc" id="namespace_slic3r_html_aa0fe88d48b85b2859e710c114c5b76ccad57ae907335d1f0f6b915b0b00fdc49c"><div class="ttname"><a href="namespace_slic3r.html#aa0fe88d48b85b2859e710c114c5b76ccad57ae907335d1f0f6b915b0b00fdc49c">Slic3r::erNone</a></div><div class="ttdef"><b>Definition:</b> ExtrusionEntity.hpp:17</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_ab74d63ffcfae0ebc79d40b3b1c544317"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#ab74d63ffcfae0ebc79d40b3b1c544317">Slic3r::GCode::notes</a></div><div class="ttdeci">std::string notes()</div><div class="ttdef"><b>Definition:</b> GCode.cpp:266</div></div>
<div class="ttc" id="class_slic3r_1_1_avoid_crossing_perimeters_html"><div class="ttname"><a href="class_slic3r_1_1_avoid_crossing_perimeters.html">Slic3r::AvoidCrossingPerimeters</a></div><div class="ttdef"><b>Definition:</b> GCode.hpp:20</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a6d246cfdea1c2e9be90f89b59e015ce3"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a6d246cfdea1c2e9be90f89b59e015ce3">Slic3r::GCode::travel_to</a></div><div class="ttdeci">std::string travel_to(const Point &amp;point, ExtrusionRole role, std::string comment)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:626</div></div>
<div class="ttc" id="class_slic3r_1_1_ooze_prevention_html"><div class="ttname"><a href="class_slic3r_1_1_ooze_prevention.html">Slic3r::OozePrevention</a></div><div class="ttdef"><b>Definition:</b> GCode.hpp:42</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a82f735d3f7bdcfc9b204682ba7515fb0"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a82f735d3f7bdcfc9b204682ba7515fb0">Slic3r::GCode::_seam_position</a></div><div class="ttdeci">std::map&lt; const PrintObject *, Point &gt; _seam_position</div><div class="ttdef"><b>Definition:</b> GCode.hpp:87</div></div>
<div class="ttc" id="class_slic3r_1_1_avoid_crossing_perimeters_html_a32df5a3f8a02746d20502b4a0c2af7e4"><div class="ttname"><a href="class_slic3r_1_1_avoid_crossing_perimeters.html#a32df5a3f8a02746d20502b4a0c2af7e4">Slic3r::AvoidCrossingPerimeters::use_external_mp_once</a></div><div class="ttdeci">bool use_external_mp_once</div><div class="ttdef"><b>Definition:</b> GCode.hpp:25</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_acdfaae6f1d3709164683e08e769affc9"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#acdfaae6f1d3709164683e08e769affc9">Slic3r::GCode::enable_cooling_markers</a></div><div class="ttdeci">bool enable_cooling_markers</div><div class="ttdef"><b>Definition:</b> GCode.hpp:83</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a40b702906e2fccb73cc52aa8e6dcd891"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a40b702906e2fccb73cc52aa8e6dcd891">Slic3r::GCode::placeholder_parser</a></div><div class="ttdeci">PlaceholderParser * placeholder_parser</div><div class="ttdef"><b>Definition:</b> GCode.hpp:75</div></div>
<div class="ttc" id="class_slic3r_1_1_polyline_html"><div class="ttname"><a href="class_slic3r_1_1_polyline.html">Slic3r::Polyline</a></div><div class="ttdef"><b>Definition:</b> Polyline.hpp:18</div></div>
<div class="ttc" id="libslic3r_8h_html"><div class="ttname"><a href="libslic3r_8h.html">libslic3r.h</a></div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a0d0378375a194221c311571a41e46870"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a0d0378375a194221c311571a41e46870">Slic3r::GCode::elapsed_time</a></div><div class="ttdeci">float elapsed_time</div><div class="ttdef"><b>Definition:</b> GCode.hpp:93</div></div>
<div class="ttc" id="_print_config_8hpp_html"><div class="ttname"><a href="_print_config_8hpp.html">PrintConfig.hpp</a></div></div>
<div class="ttc" id="class_slic3r_1_1_extrusion_entity_html"><div class="ttname"><a href="class_slic3r_1_1_extrusion_entity.html">Slic3r::ExtrusionEntity</a></div><div class="ttdef"><b>Definition:</b> ExtrusionEntity.hpp:38</div></div>
<div class="ttc" id="class_slic3r_1_1_wipe_html_ae37b8485de56d82025cba2ed0184d812"><div class="ttname"><a href="class_slic3r_1_1_wipe.html#ae37b8485de56d82025cba2ed0184d812">Slic3r::Wipe::has_path</a></div><div class="ttdeci">bool has_path()</div><div class="ttdef"><b>Definition:</b> GCode.cpp:133</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a462b84d1b9328a0c82b4d78e172f58b3"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a462b84d1b9328a0c82b4d78e172f58b3">Slic3r::GCode::origin</a></div><div class="ttdeci">Pointf origin</div><div class="ttdef"><b>Definition:</b> GCode.hpp:72</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a935d5bd6724a00bd0de46fbedb581786"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a935d5bd6724a00bd0de46fbedb581786">Slic3r::GCode::last_pos</a></div><div class="ttdeci">const Point &amp; last_pos() const</div><div class="ttdef"><b>Definition:</b> GCode.cpp:211</div></div>
<div class="ttc" id="class_slic3r_1_1_avoid_crossing_perimeters_html_aae6eb53ded72ab562f950e1455b6b4df"><div class="ttname"><a href="class_slic3r_1_1_avoid_crossing_perimeters.html#aae6eb53ded72ab562f950e1455b6b4df">Slic3r::AvoidCrossingPerimeters::AvoidCrossingPerimeters</a></div><div class="ttdeci">AvoidCrossingPerimeters()</div><div class="ttdef"><b>Definition:</b> GCode.cpp:11</div></div>
<div class="ttc" id="class_slic3r_1_1_avoid_crossing_perimeters_html_a636ab22e5653d616788c911801d2ad02"><div class="ttname"><a href="class_slic3r_1_1_avoid_crossing_perimeters.html#a636ab22e5653d616788c911801d2ad02">Slic3r::AvoidCrossingPerimeters::init_layer_mp</a></div><div class="ttdeci">void init_layer_mp(const ExPolygons &amp;islands)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:36</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_aa3b3a2d84b5f0576bceb6c83c0370220"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#aa3b3a2d84b5f0576bceb6c83c0370220">Slic3r::GCode::point_to_gcode</a></div><div class="ttdeci">Pointf point_to_gcode(const Point &amp;point)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:780</div></div>
<div class="ttc" id="class_slic3r_1_1_ooze_prevention_html_a106488f9b4c6a1e0eb46d9fbcbd1f8fe"><div class="ttname"><a href="class_slic3r_1_1_ooze_prevention.html#a106488f9b4c6a1e0eb46d9fbcbd1f8fe">Slic3r::OozePrevention::post_toolchange</a></div><div class="ttdeci">std::string post_toolchange(GCode &amp;gcodegen)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:108</div></div>
<div class="ttc" id="class_slic3r_1_1_wipe_html"><div class="ttname"><a href="class_slic3r_1_1_wipe.html">Slic3r::Wipe</a></div><div class="ttdef"><b>Definition:</b> GCode.hpp:55</div></div>
<div class="ttc" id="_motion_planner_8hpp_html"><div class="ttname"><a href="_motion_planner_8hpp.html">MotionPlanner.hpp</a></div></div>
<div class="ttc" id="class_slic3r_1_1_placeholder_parser_html"><div class="ttname"><a href="class_slic3r_1_1_placeholder_parser.html">Slic3r::PlaceholderParser</a></div><div class="ttdef"><b>Definition:</b> PlaceholderParser.hpp:16</div></div>
<div class="ttc" id="class_slic3r_1_1_ooze_prevention_html_a4f3f0a611e9802086eb150175abdc1e4"><div class="ttname"><a href="class_slic3r_1_1_ooze_prevention.html#a4f3f0a611e9802086eb150175abdc1e4">Slic3r::OozePrevention::standby_points</a></div><div class="ttdeci">Points standby_points</div><div class="ttdef"><b>Definition:</b> GCode.hpp:45</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a7b5ce6b6d3de98eb348edb8d144a2320"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a7b5ce6b6d3de98eb348edb8d144a2320">Slic3r::GCode::set_extruder</a></div><div class="ttdeci">std::string set_extruder(unsigned int extruder_id)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:739</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a1b9cd040ce1ef5fbc7d0ff2676b3fb50"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a1b9cd040ce1ef5fbc7d0ff2676b3fb50">Slic3r::GCode::preamble</a></div><div class="ttdeci">std::string preamble()</div><div class="ttdef"><b>Definition:</b> GCode.cpp:272</div></div>
<div class="ttc" id="_conditional_g_code_8hpp_html"><div class="ttname"><a href="_conditional_g_code_8hpp.html">ConditionalGCode.hpp</a></div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a34e30b153af18e9f914e8460de6a1d4b"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a34e30b153af18e9f914e8460de6a1d4b">Slic3r::GCode::elapsed_time_bridges</a></div><div class="ttdeci">float elapsed_time_bridges</div><div class="ttdef"><b>Definition:</b> GCode.hpp:93</div></div>
<div class="ttc" id="class_slic3r_1_1_print_config_html"><div class="ttname"><a href="class_slic3r_1_1_print_config.html">Slic3r::PrintConfig</a></div><div class="ttdef"><b>Definition:</b> PrintConfig.hpp:410</div></div>
<div class="ttc" id="class_slic3r_1_1_ooze_prevention_html_a40d572670fe5cf3db04d6ae40e00f895"><div class="ttname"><a href="class_slic3r_1_1_ooze_prevention.html#a40d572670fe5cf3db04d6ae40e00f895">Slic3r::OozePrevention::enable</a></div><div class="ttdeci">bool enable</div><div class="ttdef"><b>Definition:</b> GCode.hpp:44</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a98cad943333b72e34f11a28740ff7b8f"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a98cad943333b72e34f11a28740ff7b8f">Slic3r::GCode::needs_retraction</a></div><div class="ttdeci">bool needs_retraction(const Polyline &amp;travel, ExtrusionRole role=erNone)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:675</div></div>
<div class="ttc" id="namespace_slic3r_html_a47d04f71423ecef9ad36e18046f11c3c"><div class="ttname"><a href="namespace_slic3r.html#a47d04f71423ecef9ad36e18046f11c3c">Slic3r::Points</a></div><div class="ttdeci">std::vector&lt; Point &gt; Points</div><div class="ttdef"><b>Definition:</b> Point.hpp:21</div></div>
<div class="ttc" id="_print_8hpp_html"><div class="ttname"><a href="_print_8hpp.html">Print.hpp</a></div></div>
<div class="ttc" id="_point_8hpp_html"><div class="ttname"><a href="_point_8hpp.html">Point.hpp</a></div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_adf05ed87c16a522173798c742ef781df"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#adf05ed87c16a522173798c742ef781df">Slic3r::GCode::layer_count</a></div><div class="ttdeci">size_t layer_count</div><div class="ttdef"><b>Definition:</b> GCode.hpp:84</div></div>
<div class="ttc" id="class_slic3r_1_1_avoid_crossing_perimeters_html_a111144cd384870ba18ddb396051f6869"><div class="ttname"><a href="class_slic3r_1_1_avoid_crossing_perimeters.html#a111144cd384870ba18ddb396051f6869">Slic3r::AvoidCrossingPerimeters::travel_to</a></div><div class="ttdeci">Polyline travel_to(GCode &amp;gcodegen, Point point)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:45</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a54c7532f9680917488cd57ff561450a4"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a54c7532f9680917488cd57ff561450a4">Slic3r::GCode::set_origin</a></div><div class="ttdeci">void set_origin(const Pointf &amp;pointf)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:253</div></div>
<div class="ttc" id="class_slic3r_1_1_full_print_config_html"><div class="ttname"><a href="class_slic3r_1_1_full_print_config.html">Slic3r::FullPrintConfig</a></div><div class="ttdef"><b>Definition:</b> PrintConfig.hpp:565</div></div>
<div class="ttc" id="class_slic3r_1_1_layer_html"><div class="ttname"><a href="class_slic3r_1_1_layer.html">Slic3r::Layer</a></div><div class="ttdef"><b>Definition:</b> Layer.hpp:92</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a7b877f79ab3624962b83514ec57c5e6d"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a7b877f79ab3624962b83514ec57c5e6d">Slic3r::GCode::apply_print_config</a></div><div class="ttdeci">void apply_print_config(const PrintConfig &amp;print_config)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:230</div></div>
<div class="ttc" id="class_slic3r_1_1_avoid_crossing_perimeters_html_a9af0237a92c8d3a6c5157bd504d34497"><div class="ttname"><a href="class_slic3r_1_1_avoid_crossing_perimeters.html#a9af0237a92c8d3a6c5157bd504d34497">Slic3r::AvoidCrossingPerimeters::use_external_mp</a></div><div class="ttdeci">bool use_external_mp</div><div class="ttdef"><b>Definition:</b> GCode.hpp:24</div></div>
<div class="ttc" id="class_slic3r_1_1_extrusion_path_html"><div class="ttname"><a href="class_slic3r_1_1_extrusion_path.html">Slic3r::ExtrusionPath</a></div><div class="ttdef"><b>Definition:</b> ExtrusionEntity.hpp:59</div></div>
<div class="ttc" id="class_slic3r_1_1_avoid_crossing_perimeters_html_a29d2d50489f5ef828153cc4b5d44db44"><div class="ttname"><a href="class_slic3r_1_1_avoid_crossing_perimeters.html#a29d2d50489f5ef828153cc4b5d44db44">Slic3r::AvoidCrossingPerimeters::disable_once</a></div><div class="ttdeci">bool disable_once</div><div class="ttdef"><b>Definition:</b> GCode.hpp:29</div></div>
<div class="ttc" id="class_slic3r_1_1_motion_planner_html"><div class="ttname"><a href="class_slic3r_1_1_motion_planner.html">Slic3r::MotionPlanner</a></div><div class="ttdef"><b>Definition:</b> MotionPlanner.hpp:55</div></div>
<div class="ttc" id="class_slic3r_1_1_ooze_prevention_html_a3f2c74faf1106ebae4f64d71843b964e"><div class="ttname"><a href="class_slic3r_1_1_ooze_prevention.html#a3f2c74faf1106ebae4f64d71843b964e">Slic3r::OozePrevention::pre_toolchange</a></div><div class="ttdeci">std::string pre_toolchange(GCode &amp;gcodegen)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:77</div></div>
<div class="ttc" id="class_slic3r_1_1_wipe_html_a8f352a04cdfc7195f33a6011714bce5c"><div class="ttname"><a href="class_slic3r_1_1_wipe.html#a8f352a04cdfc7195f33a6011714bce5c">Slic3r::Wipe::enable</a></div><div class="ttdeci">bool enable</div><div class="ttdef"><b>Definition:</b> GCode.hpp:57</div></div>
<div class="ttc" id="_placeholder_parser_8hpp_html"><div class="ttname"><a href="_placeholder_parser_8hpp.html">PlaceholderParser.hpp</a></div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a27c12f0a1e9cb85f20ecaee1b45e0af4"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a27c12f0a1e9cb85f20ecaee1b45e0af4">Slic3r::GCode::volumetric_speed</a></div><div class="ttdeci">double volumetric_speed</div><div class="ttdef"><b>Definition:</b> GCode.hpp:94</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a5c60b4abc38e3d636529eb67fc013325"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a5c60b4abc38e3d636529eb67fc013325">Slic3r::GCode::layer</a></div><div class="ttdeci">const Layer * layer</div><div class="ttdef"><b>Definition:</b> GCode.hpp:86</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a59154e1e37769a3464a1adbeb608d4f3"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a59154e1e37769a3464a1adbeb608d4f3">Slic3r::GCode::ooze_prevention</a></div><div class="ttdeci">OozePrevention ooze_prevention</div><div class="ttdef"><b>Definition:</b> GCode.hpp:76</div></div>
<div class="ttc" id="class_slic3r_1_1_point_html"><div class="ttname"><a href="class_slic3r_1_1_point.html">Slic3r::Point</a></div><div class="ttdef"><b>Definition:</b> Point.hpp:27</div></div>
<div class="ttc" id="namespace_slic3r_html"><div class="ttname"><a href="namespace_slic3r.html">Slic3r</a></div><div class="ttdef"><b>Definition:</b> BoundingBox.cpp:4</div></div>
<div class="ttc" id="class_slic3r_1_1_wipe_html_acdaf60fce7be3246da78d42ca1f79c1b"><div class="ttname"><a href="class_slic3r_1_1_wipe.html#acdaf60fce7be3246da78d42ca1f79c1b">Slic3r::Wipe::wipe</a></div><div class="ttdeci">std::string wipe(GCode &amp;gcodegen, bool toolchange=false)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:145</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_adc045ff508fb178dc201b9814ba4cbd2"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#adc045ff508fb178dc201b9814ba4cbd2">Slic3r::GCode::change_layer</a></div><div class="ttdeci">std::string change_layer(const Layer &amp;layer)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:286</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_ac1925c875268f63d09539522597f40df"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#ac1925c875268f63d09539522597f40df">Slic3r::GCode::config</a></div><div class="ttdeci">FullPrintConfig config</div><div class="ttdef"><b>Definition:</b> GCode.hpp:73</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_abf0b5c44d36ce28cc169004804144961"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#abf0b5c44d36ce28cc169004804144961">Slic3r::GCode::retract</a></div><div class="ttdeci">std::string retract(bool toolchange=false)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:704</div></div>
<div class="ttc" id="class_slic3r_1_1_wipe_html_ad57e8a23d91be0206b769dbc6dbcd0c3"><div class="ttname"><a href="class_slic3r_1_1_wipe.html#ad57e8a23d91be0206b769dbc6dbcd0c3">Slic3r::Wipe::Wipe</a></div><div class="ttdeci">Wipe()</div><div class="ttdef"><b>Definition:</b> GCode.cpp:127</div></div>
<div class="ttc" id="class_slic3r_1_1_avoid_crossing_perimeters_html_a21e0cf13c50be57b92f20e743c21a117"><div class="ttname"><a href="class_slic3r_1_1_avoid_crossing_perimeters.html#a21e0cf13c50be57b92f20e743c21a117">Slic3r::AvoidCrossingPerimeters::~AvoidCrossingPerimeters</a></div><div class="ttdeci">~AvoidCrossingPerimeters()</div><div class="ttdef"><b>Definition:</b> GCode.cpp:17</div></div>
<div class="ttc" id="namespace_slic3r_html_aa0fe88d48b85b2859e710c114c5b76cc"><div class="ttname"><a href="namespace_slic3r.html#aa0fe88d48b85b2859e710c114c5b76cc">Slic3r::ExtrusionRole</a></div><div class="ttdeci">ExtrusionRole</div><div class="ttdoc">Each ExtrusionRole value identifies a distinct set of { extruder, speed }. </div><div class="ttdef"><b>Definition:</b> ExtrusionEntity.hpp:16</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a105b1e6249c8328f8e12b70d8ac983cb"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a105b1e6249c8328f8e12b70d8ac983cb">Slic3r::GCode::last_pos_defined</a></div><div class="ttdeci">bool last_pos_defined() const</div><div class="ttdef"><b>Definition:</b> GCode.cpp:224</div></div>
<div class="ttc" id="_layer_8hpp_html"><div class="ttname"><a href="_layer_8hpp.html">Layer.hpp</a></div></div>
<div class="ttc" id="class_slic3r_1_1_wipe_html_ad658cc53ba64891fe7bf86379fe39ad0"><div class="ttname"><a href="class_slic3r_1_1_wipe.html#ad658cc53ba64891fe7bf86379fe39ad0">Slic3r::Wipe::path</a></div><div class="ttdeci">Polyline path</div><div class="ttdef"><b>Definition:</b> GCode.hpp:58</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_aa3619757603587fd8a2f0dcd149b3096"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#aa3619757603587fd8a2f0dcd149b3096">Slic3r::GCode::writer</a></div><div class="ttdeci">GCodeWriter writer</div><div class="ttdef"><b>Definition:</b> GCode.hpp:74</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a4b5096c85157ddd8fb64bc185e604c25"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a4b5096c85157ddd8fb64bc185e604c25">Slic3r::GCode::elapsed_time_external</a></div><div class="ttdeci">float elapsed_time_external</div><div class="ttdef"><b>Definition:</b> GCode.hpp:93</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_af816f73f41514944c38bf6b59406b73f"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#af816f73f41514944c38bf6b59406b73f">Slic3r::GCode::unretract</a></div><div class="ttdeci">std::string unretract()</div><div class="ttdef"><b>Definition:</b> GCode.cpp:730</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html"><div class="ttname"><a href="class_slic3r_1_1_g_code.html">Slic3r::GCode</a></div><div class="ttdef"><b>Definition:</b> GCode.hpp:66</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a2d9d2aea86ee78ee915b041aebb16873"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a2d9d2aea86ee78ee915b041aebb16873">Slic3r::GCode::avoid_crossing_perimeters</a></div><div class="ttdeci">AvoidCrossingPerimeters avoid_crossing_perimeters</div><div class="ttdef"><b>Definition:</b> GCode.hpp:78</div></div>
<div class="ttc" id="class_slic3r_1_1_pointf_html"><div class="ttname"><a href="class_slic3r_1_1_pointf.html">Slic3r::Pointf</a></div><div class="ttdef"><b>Definition:</b> Point.hpp:104</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_ac6320878ee4fff4ad7f30400b2bf8da9"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#ac6320878ee4fff4ad7f30400b2bf8da9">Slic3r::GCode::set_extruders</a></div><div class="ttdeci">void set_extruders(const std::vector&lt; unsigned int &gt; &amp;extruder_ids)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:237</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a9bf8828474cbaaa40c5d4dccd860606d"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a9bf8828474cbaaa40c5d4dccd860606d">Slic3r::GCode::layer_index</a></div><div class="ttdeci">int layer_index</div><div class="ttdef"><b>Definition:</b> GCode.hpp:85</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_ad284e05329759e43235cc007e99034b5"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#ad284e05329759e43235cc007e99034b5">Slic3r::GCode::extrude</a></div><div class="ttdeci">std::string extrude(const ExtrusionEntity &amp;entity, std::string description=&quot;&quot;, double speed=-1)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:479</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a95595025dcf23ca2d62043972749f987"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a95595025dcf23ca2d62043972749f987">Slic3r::GCode::GCode</a></div><div class="ttdeci">GCode()</div><div class="ttdef"><b>Definition:</b> GCode.cpp:202</div></div>
<div class="ttc" id="namespace_slic3r_html_a9306b728b4672f5e56abe05ba7437fe1"><div class="ttname"><a href="namespace_slic3r.html#a9306b728b4672f5e56abe05ba7437fe1">Slic3r::ExPolygons</a></div><div class="ttdeci">std::vector&lt; ExPolygon &gt; ExPolygons</div><div class="ttdef"><b>Definition:</b> ExPolygon.hpp:13</div></div>
<div class="ttc" id="_g_code_writer_8hpp_html"><div class="ttname"><a href="_g_code_writer_8hpp.html">GCodeWriter.hpp</a></div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a2690c7ccdb7cacc74b2ec148fafb8427"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a2690c7ccdb7cacc74b2ec148fafb8427">Slic3r::GCode::set_last_pos</a></div><div class="ttdeci">void set_last_pos(const Point &amp;pos)</div><div class="ttdef"><b>Definition:</b> GCode.cpp:217</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a0fcedd010d0c299f998676307831fa82"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a0fcedd010d0c299f998676307831fa82">Slic3r::GCode::wipe</a></div><div class="ttdeci">Wipe wipe</div><div class="ttdef"><b>Definition:</b> GCode.hpp:77</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a610cf4c32f3a137d0f743a79d5d41b39"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a610cf4c32f3a137d0f743a79d5d41b39">Slic3r::GCode::enable_loop_clipping</a></div><div class="ttdeci">bool enable_loop_clipping</div><div class="ttdef"><b>Definition:</b> GCode.hpp:79</div></div>
<div class="ttc" id="class_slic3r_1_1_g_code_html_a4dc0c32804979594c8b5aec8aca71390"><div class="ttname"><a href="class_slic3r_1_1_g_code.html#a4dc0c32804979594c8b5aec8aca71390">Slic3r::GCode::first_layer</a></div><div class="ttdeci">bool first_layer</div><div class="ttdef"><b>Definition:</b> GCode.hpp:88</div></div>
<div class="ttc" id="class_slic3r_1_1_ooze_prevention_html_a79b535f6ead3e9fd282df31c22d4d4ef"><div class="ttname"><a href="class_slic3r_1_1_ooze_prevention.html#a79b535f6ead3e9fd282df31c22d4d4ef">Slic3r::OozePrevention::OozePrevention</a></div><div class="ttdeci">OozePrevention()</div><div class="ttdef"><b>Definition:</b> GCode.cpp:71</div></div>
<div class="ttc" id="class_slic3r_1_1_wipe_html_ab6fa990d3bab203e80fe6ce3ec5879bd"><div class="ttname"><a href="class_slic3r_1_1_wipe.html#ab6fa990d3bab203e80fe6ce3ec5879bd">Slic3r::Wipe::reset_path</a></div><div class="ttdeci">void reset_path()</div><div class="ttdef"><b>Definition:</b> GCode.cpp:139</div></div>
<div class="ttc" id="_ex_polygon_8hpp_html"><div class="ttname"><a href="_ex_polygon_8hpp.html">ExPolygon.hpp</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>
